//package com.ecotope.quartz.module.schedule;
//
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.ecotope.quartz.module.entity.AccessData;
//import com.ecotope.quartz.module.entity.AtmosphericStation;
//import com.ecotope.quartz.module.opentsdb.ExpectResponse;
//import com.ecotope.quartz.module.opentsdb.HttpClientImpl;
//import com.ecotope.quartz.module.opentsdb.builder.MetricBuilder;
//import com.ecotope.quartz.module.opentsdb.response.Response;
//import com.ecotope.quartz.module.service.AccessDataService;
//import com.ecotope.quartz.module.service.AtmosphericStationService;
//import com.ecotope.quartz.module.service.TownAtmosphericStationService;
//import com.ecotope.quartz.module.util.DateUtil;
//import com.ecotope.quartz.module.util.HttpURLConnectionUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.scheduling.annotation.EnableAsync;
//import org.springframework.scheduling.annotation.EnableScheduling;
//import org.springframework.stereotype.Component;
//
//import java.io.IOException;
//import java.io.UnsupportedEncodingException;
//import java.math.BigDecimal;
//import java.net.URLEncoder;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//
//@Slf4j
//@Component
//@EnableAsync
//@EnableScheduling
//@SuppressWarnings("all")
//public class OneOfAtmosphereSchedule {
//
//    //省平台地址
//    private String baseUrl ="http://59.202.42.88:8180/sjmh/dynamicservice/dynamicquery";
//
//    //大气乡镇
//    private final static String getDataQTownByxzqh = "http://10.33.70.133:6081/rest/api/foreign/getDataQTown";
//
//    //页大小
//    private Integer pageSize = 10000;
//
//    //站点日数据
//    private String fwxhZdr = "cce8b2a4fad848e89d3ece8b0f5ead1f";
//    private String keyZdr = "a5894620-0a1b-4c85-8c71-4e51552cc379";
//
//    //城市日数据
//    private String fwxhCsr = "7c81f7c2807546bd9e74438b76c8555a";
//    private String keyCsr = "196f7a33-6988-4353-97b9-531f82b2ca5b";
//
//    //清新日数据
//    private String fwxhQxr = "3be112c86cd44e45abd70c655ae3b63e";
//    private String keyQxr = "1c51a412-bba2-4abb-ab8f-d45190945d5e";
//
//    //空气城市
//    private String fwxhCs = "6b16a24fe0344a09a27db2b85a942826";
//    private String keyCs = "3b830b37-0327-49d4-8337-324cf03e6eee";
//    @Autowired
//    private AtmosphericStationService atmosphericStationService;
//
//    @Autowired
//    private AccessDataService accessDataService;
//
//    @Autowired
//    private TownAtmosphericStationService townAtmosphericStationService;
//
//    /**
//     * 站点日数据一次性插入数据
//     */
//    public void insertZdData() throws ParseException {
//
//        Integer pageNum = 1;
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = df.parse("2021-01-13");
//        String JSSJ = df.format(date);
//
//        Date dateNew = date;
//        Calendar calendarNew = Calendar.getInstance();
//        calendarNew.setTime(dateNew);
//        calendarNew.add(Calendar.MONTH, -3);
//        dateNew = calendarNew.getTime();
//        String KSSJ = df.format(dateNew);
//        HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//        while (true) {
//            int a = 0;
//            //空气质量站点请求地址——省平台
//            String url = baseUrl + "?fwxh=" + fwxhZdr + "&key=" + keyZdr + "&pagenum=" + pageNum + "&pageSize=" + pageSize + "&KSSJ=" + KSSJ + "&JSSJ=" + JSSJ+"&godKey=qmzs";
//            try {
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                if (HttpURLConnectionUtil.isJsonObject(methodReturn)) {
//                    JSONObject jsonObject = JSONObject.parseObject(methodReturn);
//                    JSONObject data = jsonObject.getJSONObject("data");
//                    String qxkqzdxssjDay = data.getString("KQZLZDRSJ");
//                    if (qxkqzdxssjDay != null && !qxkqzdxssjDay.equals("[]")) {
//                        JSONArray jsonArray = JSONArray.parseArray(qxkqzdxssjDay);
//                        for (Object o : jsonArray) {
//                            Map map = JSONObject.parseObject(o.toString(), Map.class);
//                            if (map.size() > 0) {
//                                //移除不必要的数据
//                                map.remove("CJSJ");
//                                map.remove("PXH");
//                                map.remove("BZ");
//                                map.remove("ZDMC");
//                                map.remove("XGSJ");
//                                map.remove("XH");
//                                //空气质量指数级别
//                                DateUtil.KQZLZSJBMap(map);
//                                //空气质量颜色
//                                DateUtil.KQZLYSMap(map);
//                                //空气质量类别
//                                DateUtil.KQZLLBMap(map);
//                                //首要污染物
//                                DateUtil.SYWRWMap(map);
//                                //转换时间戳
//                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                                if (map.get("JCSJ") != null) {
//                                    long timestamp = sdf.parse(String.valueOf(map.get("JCSJ"))).getTime();
//                                    map.remove("JCSJ");
//                                    //根据站点编号查询接入编码
//                                    String zdbh = String.valueOf(map.get("ZDBH"));
//                                    map.remove("ZDBH");
//                                    AtmosphericStation atmosphericStation = AtmosphericStation.builder().uuid(zdbh).build();
//                                    List<AtmosphericStation> atmosphericStations = atmosphericStationService.selectList(atmosphericStation);
//                                    String host = null;
//                                    if (atmosphericStations.size() > 0) {
//                                        host = atmosphericStations.get(0).getJrbm();
//                                    } else {
//                                        host = zdbh;
//                                    }
//                                    MetricBuilder builder = MetricBuilder.getInstance();
//                                    for (Object entry : map.entrySet()) {
//                                        Map.Entry<String, Object> map1 = (Map.Entry<String, Object>) entry;
//                                        Double value = null;
//                                        if (String.valueOf(map1.getValue()).contains(".") && String.valueOf(map1.getValue()).substring(0, String.valueOf(map1.getValue()).lastIndexOf(".")).contains(".")) {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()).substring(0, String.valueOf(map1.getValue()).lastIndexOf(".")));
//                                        } else {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()));
//                                        }
//                                        builder.addMetric("mete.air").setDataPoint(timestamp, value).addTag("host", "Day"+host).addTag("index", map1.getKey().toLowerCase());
//                                    }
//                                    //存入opentsdb
//                                    Response response = client.pushMetrics(builder,
//                                            ExpectResponse.SUMMARY);
//                                    if (!response.isSuccess()) {
//                                        log.info("insert opentsdb data fail!map is null!");
//                                    }
//                                    a++;
//                                    log.info(KSSJ+"--"+JSSJ+"插入"+a+"条");
//                                }
//                            }
//                        }
//                        pageNum++;
//                    }else {
//                        JSSJ = KSSJ;
//                        Date dateNewFor = df.parse(JSSJ);
//                        Calendar calendarNewFor = Calendar.getInstance();
//                        calendarNewFor.setTime(dateNewFor);
//                        calendarNewFor.add(Calendar.MONTH, -3);
//                        dateNewFor = calendarNewFor.getTime();
//                        KSSJ = df.format(dateNewFor);
//                        pageNum = 1;
//                        Calendar c = Calendar.getInstance();
//                        c.setTime(df.parse("2019-01-01"));
//                        if (c.compareTo(calendarNewFor) == 1) {
//                            break;
//                        }
//                    }
//                }else {
//                    continue;
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     * 城市日数据一次性插入数据
//     */
//    public void insertCsData() throws ParseException {
//
//        Integer pageNum = 1;
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = df.parse("2021-01-13");
//        String JSSJ = df.format(date);
//
//        Date dateNew = date;
//        Calendar calendarNew = Calendar.getInstance();
//        calendarNew.setTime(dateNew);
//        calendarNew.add(Calendar.MONTH, -3);
//        dateNew = calendarNew.getTime();
//        String KSSJ = df.format(dateNew);
//        HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//        while (true) {
//            int a = 0;
//            //空气质量站点请求地址——省平台
//            String url = baseUrl + "?fwxh=" + fwxhCsr + "&key=" + keyCsr + "&pagenum=" + pageNum + "&pageSize=" + pageSize + "&KSSJ=" + KSSJ + "&JSSJ=" + JSSJ+"&godKey=qmzs";
//            try {
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                if (HttpURLConnectionUtil.isJsonObject(methodReturn)) {
//                    JSONObject jsonObject = JSONObject.parseObject(methodReturn);
//                    JSONObject data = jsonObject.getJSONObject("data");
//                    String qxkqzdxssjDay = data.getString("KQZLCSRSJ");
//                    if (qxkqzdxssjDay != null && !qxkqzdxssjDay.equals("[]")) {
//                        JSONArray jsonArray = JSONArray.parseArray(qxkqzdxssjDay);
//                        for (Object o : jsonArray) {
//                            Map map = JSONObject.parseObject(o.toString(), Map.class);
//                            if (map.size() > 0) {
//                                //移除不必要的数据
//                                map.remove("PXH");
//                                map.remove("BZ");
//                                map.remove("CJSJ");
//                                map.remove("ZDMC");
//                                map.remove("XGSJ");
//                                map.remove("XH");
//                                map.remove("XZQHMC");
//
//                                //空气质量指数级别
//                                DateUtil.KQZLZSJBMap(map);
//                                //空气质量颜色
//                                DateUtil.KQZLYSMap(map);
//                                //空气质量类别
//                                DateUtil.KQZLLBMap(map);
//                                //首要污染物
//                                DateUtil.SYWRWMap(map);
//                                //行政区
//
//                                //转换时间戳
//                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                                if (map.get("JCSJ") != null) {
//                                    long timestamp = sdf.parse(String.valueOf(map.get("JCSJ"))).getTime();
//                                    map.remove("JCSJ");
//                                    String host = String.valueOf(map.get("XZQHDM"));
//                                    map.remove("XZQHDM");
//                                    MetricBuilder builder = MetricBuilder.getInstance();
//                                    for (Object entry : map.entrySet()) {
//                                        Map.Entry<String, Object> map1 = (Map.Entry<String, Object>) entry;
//                                        Double value = null;
//                                        if (String.valueOf(map1.getValue()).contains(".") && String.valueOf(map1.getValue()).substring(0, String.valueOf(map1.getValue()).lastIndexOf(".")).contains(".")) {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()).substring(0, String.valueOf(map1.getValue()).lastIndexOf(".")));
//                                        } else {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()));
//                                        }
//                                        builder.addMetric("mete.air").setDataPoint(timestamp, value).addTag("host","Day"+host).addTag("index", map1.getKey().toLowerCase());
//                                    }
//                                    //存入opentsdb
//                                    Response response = client.pushMetrics(builder,
//                                            ExpectResponse.SUMMARY);
//                                    if (!response.isSuccess()) {
//                                        log.info("insert cs-opentsdb data fail! map is null!");
//                                    }
//                                    a++;
//                                    log.info(KSSJ+"--"+JSSJ+"插入"+a+"条");
//                                }
//                            }
//                        }
//                        pageNum++;
//                    }else {
//                        JSSJ = KSSJ;
//                        Date dateNewFor = df.parse(JSSJ);
//                        Calendar calendarNewFor = Calendar.getInstance();
//                        calendarNewFor.setTime(dateNewFor);
//                        calendarNewFor.add(Calendar.MONTH, -3);
//                        dateNewFor = calendarNewFor.getTime();
//                        KSSJ = df.format(dateNewFor);
//                        pageNum = 1;
//                        Calendar c = Calendar.getInstance();
//                        c.setTime(df.parse("2019-01-01"));
//                        if (c.compareTo(calendarNewFor) == 1) {
//                            break;
//                        }
//                    }
//                }else {
//                    continue;
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     * Town 大气乡镇一次性插入数据
//     */
//    //@Scheduled(cron = "0 50 15 14 1 ?")
//    public void getTownDayInsertOpentsdb() throws ParseException {
//
//        log.info("Town:--------------getTownDayInsertOpentsdb()");
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = df.parse("2021-01-13");
//        String JSSJ = df.format(date);
//
//        Date dateNew = date;
//        Calendar calendarNew = Calendar.getInstance();
//        calendarNew.setTime(dateNew);
//        calendarNew.add(Calendar.MONTH, -3);
//        dateNew = calendarNew.getTime();
//        String KSSJ = df.format(dateNew);
//
//        HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//        while (true) {
//            int a = 0;
//        //mysql数据库 记录数据插入时间
//            try {
//                String type = URLEncoder.encode("日均值", "utf-8");
//                String startTime = URLEncoder.encode(KSSJ, "utf-8");
//                String endTime = URLEncoder.encode(JSSJ, "utf-8");
//                String url = getDataQTownByxzqh + "?type=" + type + "&startTime=" + startTime + "&endTime=" + endTime;
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//                if (null != methodReturn && !methodReturn.equals("[]")) {
//                    JSONArray jsonArray = JSONArray.parseArray(methodReturn);
//                    for (Object o : jsonArray) {
//                        Map map = JSONObject.parseObject(o.toString(), Map.class);
//                        if (map.size() > 0) {
//                            //转换时间戳
//                            String zdmc = (String) map.get("ZDMC");
//                            log.info("zdmc==> " + zdmc);
//                            String host = townAtmosphericStationService.selectZDBH(zdmc);
//                            log.info("host==> " + host);
//                            long timestamp = sdf.parse(String.valueOf(map.get("JCSJ"))).getTime();
//                            //根据站点名称获取设备ID
//                            map.remove("JCSJ");
//                            map.remove("ZDMC");
//                            MetricBuilder builder = MetricBuilder.getInstance();
//                            for (Object entry : map.entrySet()) {
//                                Map.Entry<String, Integer> map1 = (Map.Entry<String, Integer>) entry;
//                                Integer value = map1.getValue();
//                                builder.addMetric("mete.atmospheric").setDataPoint(timestamp, value).addTag("host", "Day" + host).addTag("index", map1.getKey().toLowerCase());
//                            }
//                            //存入opentsdb
//                            Response response = client.pushMetrics(builder,
//                                    ExpectResponse.SUMMARY);
//                            if (!response.isSuccess()) {
//                                log.info("town data insert fail---map is null！");
//                            }
//                            a++;
//                            log.info(KSSJ + "--" + JSSJ + "插入" + a + "条");
//                       // }
//                        }
//                    }
//                    JSSJ = KSSJ;
//                    Date dateNewFor = df.parse(JSSJ);
//                    Calendar calendarNewFor = Calendar.getInstance();
//                    calendarNewFor.setTime(dateNewFor);
//                    calendarNewFor.add(Calendar.MONTH, -3);
//                    dateNewFor = calendarNewFor.getTime();
//                    KSSJ = df.format(dateNewFor);
//                    Calendar c = Calendar.getInstance();
//                    c.setTime(df.parse("2018-12-01"));
//                    if (c.compareTo(calendarNewFor) > 0) {
//                        break;
//                    }
//                }
//            } catch (UnsupportedEncodingException e) {
//                e.printStackTrace();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//    }
//    }
//
//    /**
//     * QX 清新空气日数据
//     */
//    //@Scheduled(cron = "0 6 15 14 1 ?")
//    public void getQXDateInsertOpentsdb() throws ParseException {
//
//        log.info("QX:--------------getQXDateInsertOpentsdb()");
//        Integer pageNum = 1;
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = df.parse("2020-09-04");
//        String JSSJ = df.format(date);
//
//        Date dateNew = date;
//        Calendar calendarNew = Calendar.getInstance();
//        calendarNew.setTime(dateNew);
//        calendarNew.add(Calendar.MONTH, -3);
//        dateNew = calendarNew.getTime();
//        String KSSJ = df.format(dateNew);
//
//        HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//        while (true) {
//            int a = 0;
//            //清新空气站点请求地址——省平台
//            try {
//                String kssj = URLEncoder.encode(KSSJ, "utf-8");
//                String jssj = URLEncoder.encode(JSSJ, "utf-8");
//                String url = baseUrl + "?fwxh=" + fwxhQxr + "&key=" + keyQxr + "&pagenum=" + pageNum + "&pageSize=" + pageSize + "&KSSJ=" + kssj + "&JSSJ=" + jssj+"&godKey=qmzs";
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                if (HttpURLConnectionUtil.isJsonObject(methodReturn)) {
//                    JSONObject jsonObject = JSONObject.parseObject(methodReturn);
//                    JSONObject data = jsonObject.getJSONObject("data");
//                    String qxkqzdxssjDay = data.getString("QXKQZDRSJ");
//                    log.info("insert qx-mysql data：" + url);
//
//                    if (qxkqzdxssjDay != null && !qxkqzdxssjDay.equals("[]")) {
//                        log.info("insert qx-opentsdb data start:");
//                        //mysql数据库 记录数据插入时间
//                        AccessData accessData = AccessData.builder().type(3).url("小时数据===>" + KSSJ + "--" + JSSJ).data("清新空气").build();
//                        accessDataService.insert(accessData);
//                        //插入opentsdb
//                        JSONArray jsonArray = JSONArray.parseArray(qxkqzdxssjDay);
//                        for (Object o : jsonArray) {
//                            Map map = JSONObject.parseObject(o.toString(), Map.class);
//                            if (map.size() > 0) {
//                                //移除不必要的数据
//                                map.remove("CJSJ");
//                                map.remove("XGSJ");
//                                map.remove("XH");
//                                map.remove("BZ");
//                                map.remove("PXH");
//
//                                //数据标记
//                                DateUtil.SJBJMap(map);
//
//                                String yzbh = String.valueOf(map.get("YZBH"));
//                                map.remove("YZBH");
//                                //转换时间戳
//                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                                if (map.get("JCSJ") != null) {
//                                    long timestamp = sdf.parse(String.valueOf(map.get("JCSJ"))).getTime();
//                                    String host = String.valueOf(map.get("ZDBH"));
//                                    MetricBuilder builder = MetricBuilder.getInstance();
//                                    map.remove("JCSJ");
//                                    map.remove("ZDBH");
//                                    for (Object entry : map.entrySet()) {
//                                        Map.Entry<String, Object> map1 = (Map.Entry<String, Object>) entry;
//                                        Double value = null;
//                                        if ("--".equals(map1.getValue()) || StringUtils.isEmpty((String) map1.getValue())) {
//                                            value = 0.0;
//                                        } else {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()));
//                                        }
//                                        builder.addMetric("mete.air").setDataPoint(timestamp, value).addTag("yzbh", yzbh)
//                                                .addTag("host", "Day"+host).addTag("index", map1.getKey().toLowerCase());
//                                    }
//                                    //存入opentsdb
//                                    Response response = client.pushMetrics(builder,
//                                            ExpectResponse.SUMMARY);
//                                    if (!response.isSuccess()) {
//                                        log.info("insertopentsdb data fail! map is null!");
//                                    }
//                                    a++;
//                                    log.info(KSSJ+"--"+JSSJ+"插入"+a+"条");
//                                }
//                            }
//                        }
//                        pageNum++;
//                    } else {
//                        JSSJ = KSSJ;
//                        Date dateNewFor = df.parse(JSSJ);
//                        Calendar calendarNewFor = Calendar.getInstance();
//                        calendarNewFor.setTime(dateNewFor);
//                        calendarNewFor.add(Calendar.MONTH, -3);
//                        dateNewFor = calendarNewFor.getTime();
//                        KSSJ = df.format(dateNewFor);
//                        pageNum = 1;
//                        Calendar c = Calendar.getInstance();
//                        c.setTime(df.parse("2018-12-01"));
//                        if (c.compareTo(calendarNewFor) == 1) {
//                            break;
//                        }
//                    }
//                } else {
//                    continue;
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     * CS 空气城市 （每小时 执行）
//     */
//    public void getCSDateTOOpentsdb() throws ParseException {
//
//        log.info("CS:--------------getCSDateAndInsertOpentsdb()");
//        Integer pageNum = 1;
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//        Date date = df.parse("2021-01-14");
//        String JSSJ = df.format(date);
//        Date dateNew = df.parse("2021-01-13");
//        String KSSJ = df.format(date);
//        HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//        while (true) {
//            try {
//                //空气质量城市请求地址——省平台
//                String kssj = URLEncoder.encode(KSSJ, "utf-8");
//                String jssj = URLEncoder.encode(JSSJ, "utf-8");
//                String url = baseUrl + "?fwxh=" + fwxhCs + "&key=" + keyCs + "&pagenum=" + pageNum + "&pageSize=" + pageSize + "&KSSJ=" + kssj + "&JSSJ=" + jssj+"&godKey=qmzs";
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                if (HttpURLConnectionUtil.isJsonObject(methodReturn)) {
//                    JSONObject jsonObject = JSONObject.parseObject(methodReturn);
//                    JSONObject data = jsonObject.getJSONObject("data");
//                    String kqzlcsxssjDay = data.getString("KQZLCSXSSJ");
//                    //mysql数据库 记录数据插入时间
//                    log.info("insert cs-mysql  data:" + url);
//                    if (kqzlcsxssjDay != null && !kqzlcsxssjDay.equals("[]")) {
//                        log.info("insert cs-opentsdb data start:");
//                        //插入opentsdb
//                        JSONArray jsonArray = JSONArray.parseArray(kqzlcsxssjDay);
//                        for (Object o : jsonArray) {
//                            Map map = JSONObject.parseObject(o.toString(), Map.class);
//
//                            if (map.size() > 0) {
//                                //移除不必要的数据
//                                map.remove("CJSJ");
//                                map.remove("ZDMC");
//                                map.remove("XGSJ");
//                                map.remove("XH");
//                                map.remove("XZQHMC");
//
//                                //空气质量指数级别
//                                DateUtil.KQZLZSJBMap(map);
//                                //空气质量颜色
//                                DateUtil.KQZLYSMap(map);
//                                //空气质量类别
//                                DateUtil.KQZLLBMap(map);
//                                //首要污染物
//                                DateUtil.SYWRWMap(map);
//                                //行政区
//                                //转换时间戳
//                                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                                if (map.get("JCSJ") != null) {
//                                    long timestamp = sdf.parse(String.valueOf(map.get("JCSJ"))).getTime();
//                                    map.remove("JCSJ");
//                                    String host = String.valueOf(map.get("XZQHDM"));
//                                    map.remove("XZQHDM");
//                                    MetricBuilder builder = MetricBuilder.getInstance();
//                                    for (Object entry : map.entrySet()) {
//                                        Map.Entry<String, Object> map1 = (Map.Entry<String, Object>) entry;
//                                        Double value = null;
//                                        if (String.valueOf(map1.getValue()).contains(".") && String.valueOf(map1.getValue()).substring(0, String.valueOf(map1.getValue()).lastIndexOf(".")).contains(".")) {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()).substring(0, String.valueOf(map1.getValue()).lastIndexOf(".")));
//                                        } else {
//                                            value = Double.parseDouble(String.valueOf(map1.getValue()));
//                                        }
//                                        builder.addMetric("mete.air").setDataPoint(timestamp, value).addTag("host", host).addTag("index", map1.getKey().toLowerCase());
//                                    }
//                                    //存入opentsdb
//                                    Response response = client.pushMetrics(builder,
//                                            ExpectResponse.SUMMARY);
//                                    if (!response.isSuccess()) {
//                                        log.info("insert cs-opentsdb data fail! map is null!");
//                                    }
//                                }
//                            }
//                        }
//                        log.info("insert cs-opentsdb data end");
//                        pageNum++;
//                    }
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     * 饮用水历史数据
//     */
//    //@Scheduled(cron = "0 */1 * * * ?")
//    public void YYSXSDateAndInsertOpentsdb(){
//
//        int a = 0;
//        //省平台地址
//        String baseUrl = "http://59.202.42.88:8180/sjmh/dynamicservice/dynamicquery";
//
//        //页大小
//        Integer pageSize = 10000;
//
//        String fwxhXs = "4852dc97b4cb4ab9a89c88dce992f36c";
//        String keyXs = "91029da2-2f0d-41a5-8c94-845cfef3da7b";
//
//        Integer pageNum = 1;
//
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//
//        Date date = new Date();
//        //String JSSJ = df.format(date);
//        String JSSJ = "2018-06-28";
//
//        Date dateNew = date;
//        Calendar calendarNew = Calendar.getInstance();
//        calendarNew.setTime(dateNew);
//        calendarNew.add(Calendar.MONTH, -3);
//        dateNew = calendarNew.getTime();
//        //String KSSJ = df.format(dateNew);
//        String KSSJ = "2018-03-28";
//
//        while (true){
//            HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//            System.out.println("pageNum:"+pageNum);
//            String url = baseUrl + "?fwxh=" + fwxhXs + "&key=" + keyXs + "&pagenum=" + pageNum + "&pageSize=" + pageSize + "&KSSJ=" + KSSJ + "&JSSJ=" + JSSJ;
//            try {
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                if (HttpURLConnectionUtil.isJsonObject(methodReturn)) {
//                    JSONObject jsonObject = JSONObject.parseObject(methodReturn);
//                    JSONObject data = jsonObject.getJSONObject("data");
//                    String yyszdjcxssj = data.getString("YYSZDJCXSSJ");
//                    //mysql数据库 记录数据插入时间
//                    AccessData accessData = AccessData.builder().type(5).url(url).data(String.valueOf(pageNum)).build();
//                    accessDataService.insert(accessData);
//                    if (yyszdjcxssj != null && !"[]".equals(yyszdjcxssj)) {
//                        //插入opentsdb
//                        JSONArray jsonArray = JSONArray.parseArray(yyszdjcxssj);
//                        for (Object o : jsonArray) {
//                            Map map = JSONObject.parseObject(o.toString(), Map.class);
//                            String xh = (String) map.get("XH");
//                            String jcz = (String) map.get("JCZ");
//                            String jcsj = (String) map.get("JCSJ");
//                            String host = (String) map.get("CDBH");
//                            String sjbj = (String) map.get("SJBJ");
//                            String yzbh = (String) map.get("YZBH");
//                            if (sjbj!=null&&sjbj.equals("正常")){
//                                sjbj = "1";
//                            }else {
//                                sjbj = "0";
//                            }
//                            if (yzbh==null && yzbh=="" ) {
//                                yzbh = "0";
//                            }
//                            //转换时间戳
//                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                            if (jcsj != null) {
//                                long timestamp = sdf.parse((jcsj)).getTime();
//                                map.remove("JCSJ");
//                                MetricBuilder builder = MetricBuilder.getInstance();
//                                for (Object entry : map.entrySet()) {
//                                    Map.Entry<String, Object> map1 = (Map.Entry<String, Object>) entry;
//                                    double value = 0.0;
//                                    if (jcz!=null&&jcz!=""){
//                                        value = Double.parseDouble(jcz);
//                                    }
//                                    builder.addMetric("mete.drinkingWater").setDataPoint(timestamp, value).addTag("host", host)
//                                            .addTag("index", yzbh).addTag("XH",xh).addTag("SJBJ",sjbj);
//                                }
//                                //存入opentsdb
//                                Response response = client.pushMetrics(builder,
//                                        ExpectResponse.SUMMARY);
//                                if (!response.isSuccess()) {
//                                    log.info(response.getErrorDetail().toString());
//                                }
//                                a++;
//                            }
//                            System.out.println(KSSJ+"到"+JSSJ+"执行第"+a+"条");
//                            if(a==2260){ System.out.println(true);
//                            }
//                        }
//                        pageNum++;
//                        Thread.sleep(1000 * 60 * 5);
//                    } else {
//                        log.info("返回数据为空");
//                        JSSJ = KSSJ;
//                        Date dateNewFor = df.parse(JSSJ);
//                        Calendar calendarNewFor = Calendar.getInstance();
//                        calendarNewFor.setTime(dateNewFor);
//                        calendarNewFor.add(Calendar.MONTH, -3);
//                        dateNewFor = calendarNewFor.getTime();
//                        KSSJ = df.format(dateNewFor);
//                        pageNum = 1;
//                        a = 0;
//                        log.info("----------KSSJ:------" + KSSJ);
//                    }
//                }else {
//                    log.info(methodReturn);
//                    Thread.sleep(1000 * 60 * 5);
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    /**
//     * 地表水历史数据
//     */
//    //@Scheduled(cron = "0 */1 * * * ?")
//    public void DBSXSDateAndInsertOpentsdb(){
//
//        int a = 0;
//        //省平台地址
//        String baseUrl = "http://59.202.42.88:8180/sjmh/dynamicservice/dynamicquery";
//
//        //页大小
//        Integer pageSize = 10000;
//
//        String fwxhXs = "5048f9185ec34d338386ffce2613a1cd";
//        String keyXs = "adf6ba7e-78be-487e-b285-9cb2e9f14a5c";
//
//        Integer pageNum = 1;
//
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//
//        Date date = new Date();
//        String JSSJ = "2018-03-30";
//
//        Date dateNew = date;
//        Calendar calendarNew = Calendar.getInstance();
//        calendarNew.setTime(dateNew);
//        calendarNew.add(Calendar.MONTH, -3);
//        dateNew = calendarNew.getTime();
//        String KSSJ = "2017-12-30";
//
//        while (true){
//            HttpClientImpl client = new HttpClientImpl("http://61.164.218.155:61242");
//            System.out.println("pageNum:"+pageNum);
//            //String url = baseUrl + "?fwxh=" + fwxhXs + "&key=" + keyXs + "&pagenum=" + pageNum + "&pageSize=" + pageSize + "&KSSJ=" + KSSJ + "&JSSJ=" + JSSJ+"&godKey=qmzs";
//            try {
//                String kssj = URLEncoder.encode(KSSJ, "utf-8");
//                String jssj = URLEncoder.encode(JSSJ, "utf-8");
//                String url =baseUrl+"?fwxh="+fwxhXs+"&key="+keyXs+"&pagenum="+pageNum+"&pageSize="+pageSize+"&KSSJ="+kssj+"&JSSJ="+jssj;
//                String methodReturn = HttpURLConnectionUtil.getMethod(url);
//                if (HttpURLConnectionUtil.isJsonObject(methodReturn)) {
//                    JSONObject jsonObject = JSONObject.parseObject(methodReturn);
//                    JSONObject data = jsonObject.getJSONObject("data");
//                    String szzdjcxssj = data.getString("SZZDJCXSSJ");
//                    //mysql数据库 记录数据插入时间
//                    AccessData accessData = AccessData.builder().type(11).url(KSSJ+"-"+JSSJ).data(String.valueOf(pageNum)).build();
//                    accessDataService.insert(accessData);
//                    if (szzdjcxssj != null && !"[]".equals(szzdjcxssj)) {
//                        //插入opentsdb
//                        JSONArray jsonArray = JSONArray.parseArray(szzdjcxssj);
//                        for (Object o : jsonArray) {
//                            Map map = JSONObject.parseObject(o.toString(), Map.class);
//                            double value = 0.0;
//                            if (map.get("JCZ") instanceof Integer) {
//                                Integer Intjcz = (Integer) map.get("JCZ");
//                                value = Intjcz;
//                            }else {
//                                BigDecimal Bigjcz = (BigDecimal) map.get("JCZ");
//                                value = Bigjcz.doubleValue();
//                            }
//                            String jcsj = (String) map.get("JCSJ");
//                            String host = (String) map.get("CDBH");
//                            String sjbj = (String) map.get("SJBJ");
//                            String yzbh = (String) map.get("YZBH");
//                            if (sjbj!=null&&sjbj.equals("正常")){
//                                sjbj = "1";
//                            }else {
//                                sjbj = "0";
//                            }
//                            if (yzbh==null && yzbh=="" ) {
//                                yzbh = "0";
//                            }
//                            //转换时间戳
//                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                            if (jcsj != null) {
//                                long timestamp = sdf.parse((jcsj)).getTime();
//                                map.remove("JCSJ");
//                                MetricBuilder builder = MetricBuilder.getInstance();
//                                for (Object entry : map.entrySet()) {
//                                    Map.Entry<String, Object> map1 = (Map.Entry<String, Object>) entry;
//                                    builder.addMetric("mete.surfaceWater").setDataPoint(timestamp, value).addTag("host", host)
//                                            .addTag("index", yzbh).addTag("SJBJ",sjbj);
//                                }
//                                //存入opentsdb
//                                Response response = client.pushMetrics(builder,
//                                        ExpectResponse.SUMMARY);
//                                if (!response.isSuccess()) {
//                                    log.info(response.getErrorDetail().toString());
//                                }
//                                a++;
//                            }
//                            System.out.println(KSSJ+"到"+JSSJ+"执行第"+a+"条");
//                        }
//                        pageNum++;
//                    } else {
//                        log.info("返回数据为空");
//                        JSSJ = KSSJ;
//                        Date dateNewFor = df.parse(JSSJ);
//                        Calendar calendarNewFor = Calendar.getInstance();
//                        calendarNewFor.setTime(dateNewFor);
//                        calendarNewFor.add(Calendar.MONTH, -3);
//                        dateNewFor = calendarNewFor.getTime();
//                        KSSJ = df.format(dateNewFor);
//                        pageNum = 1;
//                        a = 0;
//                        log.info("----------KSSJ:------" + KSSJ);
//                        Calendar c = Calendar.getInstance();
//                        c.setTime(df.parse("2017-12-28"));
//                        if (c.compareTo(calendarNewFor) == 1) {
//                            break;
//                        }
//                    }
//                }else {
//                    log.info(methodReturn);
//                }
//            } catch (IOException e) {
//                e.printStackTrace();
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//
//}
